<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/templates/mantenimiento.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:r="http://richfaces.org" >
    <ui:define name="title">
        Reagendamiento de turnos
    </ui:define>    
    <ui:define name="datos">
        <center>

            <h:panelGrid id="panelDatos">
                <h:form id="formDatos">
                    <p:panel  header="Agenda origen">
                        <h:panelGrid id="datosAgenda" columnClasses="alignTop,alignTop,alignTop" columns="8">
                            <h:outputText value="Fecha:" />
                            <p:calendar value="#{jsfReagendamiento.fechaOrigen}" size="8" label="Fecha origen"  id="fechaOrigen">
                                <p:ajax event="dateSelect" process="@this"  listener="#{jsfReagendamiento.limpiarMedico()}" update="panelListaOrigen datosAgenda"/>
                            </p:calendar> 

                            <h:outputText value="Especialidad:" />
                            <p:selectOneMenu style="width: 180px" required="true"  label="Especialidades" id="especialidades"  
                                             converter="JsfConverterEspecialidad"  value="#{jsfReagendamiento.especialidadOrigen}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemEspe}" var="item"/>
                                <p:ajax event="change" process="@this" update="subespecialidad"/>
                            </p:selectOneMenu>

                            <h:outputText value="Subespecialidad:" />
                            <p:selectOneMenu required="true" style="width: 180px" label="Subespecialidad:" id="subespecialidad" 
                                             converter="JsfConverterEspecialidad"  value="#{jsfReagendamiento.subEspecialidadOrigen}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemSubespecialidad}" var="item"/>
                                <p:ajax event="change" process="@this" update="medico"/>
                            </p:selectOneMenu>

                            <h:outputText value="Medico:" />
                            <p:selectOneMenu style="width: 180px" required="true"  label="Medico" id="medico"  
                                             converter="JsfConverterEspecialidadMedico" value="#{jsfReagendamiento.medicoOrigen}"  >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemMedico}" var="item"/>
                                <f:ajax event="change" execute="@this fechaOrigen" render="panelListaOrigen datosAgenda " listener="#{jsfReagendamiento.buscarTurnoOrigenListener()}" />
                            </p:selectOneMenu> 




                            <f:verbatim/>   
                            <p:message for="fechaOrigen" />

                            <f:verbatim/>
                            <p:message for="especialidades" />

                            <f:verbatim/>
                            <p:message for="subespecialidad" />

                            <f:verbatim/>
                            <p:message for="medico" />

                        </h:panelGrid>
                        <h:panelGrid id="panelListaOrigen">
                            <p:dataTable  id="listaSimpleOrigen" emptyMessage="No tiene horarios"  
                                          value="#{jsfReagendamiento.listaOrigen}" var="var" 
                                          >
                                <f:facet name="header">
                                    <h:outputText value="Total de turnos [#{jsfReagendamiento.listaOrigen.size()}] - " />
                                    <h:outputText value=" Estado de agenda " />
                                    <h:outputText value=" #{jsfReagendamiento.textoReagendamiento}" 
                                                  styleClass="#{jsfReagendamiento.textoReagendamiento eq 'AGENDA BLOQUEADA' ? 'letraTomate':''}" />
                                </f:facet>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="60"  headerText="Acción">
                                    <p:selectBooleanCheckbox disabled="#{var.cagEstadoReagendado eq 2}"  value="#{var.seleccionado}" >
                                    </p:selectBooleanCheckbox>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="40" headerText="Hora">
                                    <h:outputText value="#{var.cagHora}">
                                        <f:convertDateTime pattern="HH:mm"/>
                                    </h:outputText>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="60" headerText="H/Clínica">
                                    <h:outputText value="#{var.cexHistoriaClinica.chcHistoriaClinica}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" headerText="Nombres"  >
                                    <h:outputText value="#{var.cexHistoriaClinica.chcNombreFull}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="55" headerText="Telefono"  >
                                    <h:outputText value="#{var.cexHistoriaClinica.chcTelefonoConv}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" headerText="Referencia"  >
                                    <h:outputText value="#{var.cexHistoriaClinica.chcNombreReferencia}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="70" headerText="Telefono/ref"  >
                                    <h:outputText value="#{var.cexHistoriaClinica.chcRelefonoReferencia}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="40" headerText="Tipo"  >
                                    <h:outputText styleClass="#{var.cagEstado eq 4 ?'letraTomate':''}" 
                                                  value="#{var.cagTipo eq 1 ? 'MED' : 
                                                           (var.cagTipo eq 2 ? 'EXTRA':(var.cagTipo eq 3 ? 'AREA':'EST'))}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}" width="70" headerText="Reagendado"  >
                                    <h:outputText value="#{var.cagEstadoReagendado eq 0 ? 'NO REAGENDADO' :
                                                           (var.cagEstadoReagendado eq 1 ? 'REAGENDADO':
                                                           (var.cagEstadoReagendado eq 2 ? 'BLOQUEADO POR REAGENDAMIENTO':
                                                           'NO REAGENDADO'))}"/>
                                </p:column>
                                <p:column style="#{var.cagEstadoReagendado eq 2 ? 'background-color: orangered' : '#F5F5F5'}"  headerText="Observacion">
                                    <h:outputText value="#{var.cagObservacion}"/>
                                </p:column>
                            </p:dataTable>

                        </h:panelGrid>
                    </p:panel>

                    <center>
                        <h:panelGrid columns="2" >
                            <h:panelGroup id="panelBotones">
                                <h:panelGrid columns="2" >
                                    <r:commandButton  value="REAGENDAR TURNOS" type="button" 
                                                      onclick="PF('popupReagendar').show();"   >
                                    </r:commandButton>

                                    <p:ajaxStatus id="commonStatus">
                                        <f:facet name="start">
                                            <h:graphicImage library="images/ajax" name="status2.gif"/>
                                        </f:facet>
                                    </p:ajaxStatus>
                                </h:panelGrid>
                            </h:panelGroup>
                            <p:message id="mensa" for="formDatos">
                                <f:facet name="errorMarker">
                                    <h:graphicImage library="images/ajax" name="warning.gif"/>
                                </f:facet>
                                <f:facet name="infoMarker">
                                    <h:graphicImage library="images/ajax" name="passed.gif"/>
                                </f:facet>
                            </p:message>
                        </h:panelGrid>
                    </center>

                    <p:panel  header="Agenda destino">
                        <h:panelGrid id="datosAgendaDestino" columnClasses="alignTop,alignTop,alignTop" columns="8">
                            <h:outputText value="Fecha:" />
                            <p:calendar value="#{jsfReagendamiento.fechaDestino}" size="8" label="Fecha origen"  id="fechaDestino">
                                <p:ajax event="dateSelect" process="@this"  listener="#{jsfReagendamiento.limpiarMedicoDestino()}" update="datosAgendaDestino panelListaDestino"/>
                            </p:calendar> 

                            <h:outputText value="Especialidad:" />
                            <p:selectOneMenu style="width: 180px" required="true"  label="Especialidades" id="especialidadesDestino"  
                                             converter="JsfConverterEspecialidad"  value="#{jsfReagendamiento.especialidadDestino}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemEspe}" var="item"/>
                                <p:ajax event="change" process="@this" update="subespecialidadDestino"/>
                            </p:selectOneMenu>

                            <h:outputText value="Subespecialidad:" />
                            <p:selectOneMenu required="true" style="width: 180px" label="Subespecialidad:" id="subespecialidadDestino" 
                                             converter="JsfConverterEspecialidad"  value="#{jsfReagendamiento.subEspecialidadDestino}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemSubespecialidadDestino}" var="item"/>
                                <p:ajax event="change" process="@this fechaOrigen" update="medicoDestino"/>
                            </p:selectOneMenu>

                            <h:outputText value="Medico:" />
                            <p:selectOneMenu style="width: 180px" required="true"  label="Medico" id="medicoDestino"  
                                             converter="JsfConverterEspecialidadMedico" value="#{jsfReagendamiento.medicoDestino}"  >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfReagendamiento.selectedItemMedicoDestino}" var="item"/>
                                <f:ajax event="change" execute="@this fechaOrigen" render="formDatos " listener="#{jsfReagendamiento.buscarTurnoDestinoListener()}" />
                            </p:selectOneMenu> 




                            <f:verbatim/>   
                            <p:message for="fechaDestino" />

                            <f:verbatim/>
                            <p:message for="especialidadesDestino" />

                            <f:verbatim/>
                            <p:message for="subespecialidadDestino" />

                            <f:verbatim/>
                            <p:message for="medicoDestino" />

                        </h:panelGrid>

                        <h:panelGrid id="panelListaDestino">
                            <p:dataTable  id="listaSimpleDestino" emptyMessage="No tiene horarios"  
                                          value="#{jsfReagendamiento.listaDestino}" var="item" editable="true"
                                          >
                                <p:ajax event="rowEdit" listener="#{jsfReagendamiento.onRowEdit}" update="@this" />
                                <p:ajax event="rowEditCancel" listener="#{jsfReagendamiento.onRowCancel}" update="@this" />
                                <f:facet name="header">
                                    <h:outputText value="Total de turnos [#{jsfReagendamiento.listaDestino.size()}]" />
                                </f:facet>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" rendered="#{jsfReagendamiento.admUsuario.admEmpleado.admCargo.idCargo eq 0}"  headerText="Ed" >
                                    <p:rowEditor />
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}"  headerText="Acción">
                                    <p:selectBooleanCheckbox  value="#{item.seleccionado}" >
                                    </p:selectBooleanCheckbox>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}"  headerText="Hora">
                                    <p:cellEditor>
                                        <f:facet name="output">
                                            <h:outputText value="#{item.cagHora}">
                                                <f:convertDateTime pattern="HH:mm"/>
                                            </h:outputText>
                                        </f:facet>
                                        <f:facet name="input">
                                            <p:calendar pattern="HH:mm" timeOnly="true" label="Fecha de nacimeinto" 
                                                        value="#{item.cagHora}" required="true"  id="fecha" >
                                            </p:calendar>
                                        </f:facet>
                                    </p:cellEditor>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" headerText="H/Clínica">
                                    <h:outputText value="#{item.cexHistoriaClinica.chcHistoriaClinica}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" headerText="Nombres"  >
                                    <h:outputText value="#{item.cexHistoriaClinica.chcNombreFull}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" width="55" headerText="Telefono"  >
                                    <h:outputText value="#{item.cexHistoriaClinica.chcTelefonoConv}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" headerText="Referencia"  >
                                    <h:outputText value="#{item.cexHistoriaClinica.chcNombreReferencia}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" width="70" headerText="Telefono/ref"  >
                                    <h:outputText value="#{item.cexHistoriaClinica.chcRelefonoReferencia}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" width="40" headerText="Tipo" >
                                    <p:cellEditor>
                                        <f:facet name="output">
                                            <h:outputText styleClass="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" 
                                                          value="#{item.cagTipo eq 1 ? 'MED' : 
                                                                   (item.cagTipo eq 2 ? 'EXTRA':(item.cagTipo eq 3 ? 'AREA':'EST'))}"/>
                                        </f:facet>
                                        <f:facet name="input">
                                            <p:selectOneMenu style="width: 80px"  disabled="#{item.cagEstado eq 4}" label="Tipo" id="tipoAge" value="#{item.cagTipo}"   >                              
                                                <f:selectItem itemLabel="EST" itemValue="0"/>
                                                <f:selectItem itemLabel="MED" itemValue="1"/>
                                                <f:selectItem itemLabel="AREA" itemValue="3"/>
                                            </p:selectOneMenu>
                                        </f:facet>
                                    </p:cellEditor>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}" width="70" headerText="Reagendado"  >
                                    <h:outputText value="#{item.cagEstadoReagendado eq 0 ? 'NO REAGENDADO' :
                                                           (item.cagEstadoReagendado eq 1 ? 'REAGENDADO':
                                                           (item.cagEstadoReagendado eq 2 ? 'BLOQUEADO POR REAGENDAMIENTO':
                                                           'NO REAGENDADO'))}"/>
                                </p:column>
                                <p:column style="#{item.cagEstadoReagendado eq 1 ? 'background-color: gold' : '#F5F5F5'}"  headerText="Observacion">
                                    <h:outputText value="#{item.cagObservacion}"/>
                                </p:column>
                            </p:dataTable>

                        </h:panelGrid>
                    </p:panel>

                    <p:growl id="growl"  showDetail="true" life="6500" />  


                    <p:dialog header="Datos"   modal="true" height="120"  width="550" id="popupReasignar"  widgetVar="popupReagendar">
                        <h:panelGrid id="datosReagendamiento" columns="4" >

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Motivo:" />
                            <p:inputTextarea label="Motivo de reagendamiento de turnos" cols="55" rows="5" placeholder="Motivo de reagendamiento de turnos" 
                                             id="motivoReagendamiento"   required="true" value="#{jsfReagendamiento.motivoReagendamiento}" >
                            </p:inputTextarea>
                            <p:message for="motivoReagendamiento"/>


                            <f:verbatim/>
                            <f:verbatim/>
                            <r:commandButton id="btGrabar"  execute="panelListaOrigen panelListaDestino datosReagendamiento" render=":panelDatos " value="REASIGNAR TURNOS" 
                                             action="#{jsfReagendamiento.grabarAction}"  title="Agregar turno"/>


                            <p:message id="mesaBloqueo"  for="datosReagendamiento">
                                <f:facet name="errorMarker">
                                    <h:graphicImage library="images/ajax" name="warning.gif"/>
                                </f:facet>
                                <f:facet name="infoMarker">
                                    <h:graphicImage library="images/ajax" name="passed.gif"/>
                                </f:facet>
                            </p:message>

                        </h:panelGrid>


                    </p:dialog>

                </h:form>

            </h:panelGrid>
        </center>






    </ui:define>

</ui:composition>
